package com.example.algorithm.string;

/**
 * @author : zhy
 * @since : 2022/7/26
 * 实现 strStr() 函数。
 */
public class StrStr {

    /**
     * 有点窗口函数的意思，不过，没有记录上一次符合的内容，可能会比较慢
     * @param haystack
     * @param needle
     * @return
     */
    public int strStr(String haystack, String needle) {
        char[] array = haystack.toCharArray();
        char[] charArray = needle.toCharArray();
        int len1 = array.length;
        int len2=charArray.length;
        if(len2>len1)
        {
            return -1;
        }
        for(int i=0;i<len1;i++)
        {
            int len3=i;
            if(array[i]==charArray[0])
            {
                boolean flag=true;
                for(int j=1;j<len2;j++)
                {
                    len3=len3+1;
                    if(len3>=len1&&(len3-i)<len2){
                        flag=false;
                        break;
                    }
                    if(charArray[j]!=array[len3])
                    {
                        flag=false;
                        break;
                    }
                }
                int temp=len3-i+1;
                if(flag&&temp>=len2){
                    return i;
                }
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        StrStr str = new StrStr();
        int i = str.strStr("mississippi", "issipi");
        System.out.println(i);
    }


}
